home *** CD-ROM | disk | FTP | other *** search
/ MacTech 1 to 12 / MacTech-vol-1-12.toast / Source / MacTech® Magazine / Volume 12 - 1996 / 12.08 Aug 96 / 12.08 Getting Started / CWBlink.java < prev    next >
Encoding:
Java Source  |  1996-05-20  |  1.4 KB  |  64 lines  |  [TEXT/CWIE]

  1. import java.awt.*;
  2.  
  3. public class CWBlink extends java.applet.Applet implements Runnable
  4. {
  5.     Thread blinkThread;
  6.     String blinkString;
  7.     Font font;
  8.     int speed;
  9.  
  10.     public void init()
  11.     {
  12.         font = new java.awt.Font("TimesRoman", Font.PLAIN, 64);
  13.         
  14.         String att = getParameter("speed");
  15.         speed = (att == null) ? 400 : (1000 / Integer.valueOf(att).intValue());
  16.         
  17.         att = getParameter("blinker");
  18.         blinkString = (att == null) ? "CodeWarrior!!!" : att;
  19.     }
  20.     
  21.     public void paint(Graphics g)
  22.     {
  23.         int x = 0, y = font.getSize()-10, space;
  24.  
  25.         g.setColor(Color.black);
  26.         g.setFont(font);
  27.         FontMetrics fm = g.getFontMetrics();
  28.         space = fm.stringWidth(" ");
  29.         
  30.         for (int index=0; index<blinkString.length(); index++ )
  31.         {
  32.             int red = (int)(Math.random() * 256);
  33.             int green = (int)(Math.random() * 256);
  34.             int blue = (int)(Math.random() * 256);
  35.             
  36.             char character = blinkString.charAt(index);
  37.             int w = fm.charWidth(character);
  38.             
  39.             g.setColor( new java.awt.Color( red, green, blue ) );
  40.             
  41.             Character c = new Character( character );
  42.             g.drawString(c.toString(), x, y );
  43.             x += w;
  44.         }
  45.     }
  46.  
  47.     public void start()
  48.     {
  49.         blinkThread = new Thread(this);
  50.         blinkThread.start();
  51.     }
  52.     public void stop()
  53.     {
  54.         blinkThread.stop();
  55.     }
  56.     public void run()
  57.     {
  58.         while (true)
  59.         {
  60.             try {Thread.currentThread().sleep(speed);} catch (InterruptedException e){}
  61.                repaint();
  62.         }
  63.     }
  64. }